package modelo;


public class Tablero {
	
	private Casillero[][] mapa;
	private static Tablero instancia;	
	public final static int tamanio = 10;
	
	private Tablero() {		
		this.mapa = new Casillero[Tablero.tamanio][Tablero.tamanio];
		for (int i = 0; i < Tablero.tamanio; i++) 
			for (int j = 0; j < Tablero.tamanio; j++) 
				this.mapa[i][j] = (new Casillero(i, j));		
	}
			
	public static Tablero getInstancia() {
		if (instancia == null) {
			instancia = new Tablero();
		}
		return instancia;  
	}
	
	public static void destruirTablero() {
		instancia = null;
	}
	
	public Casillero getCasillero(int x, int y) {
		if (!Tablero.coordenadaDentroDelTablero(x, y))
			return null;
		
		return this.mapa[x][y];		
	}
	
	public static boolean coordenadaDentroDelTablero(int x, int y) {
		if (x < Tablero.tamanio && x >= 0
				&& y < Tablero.tamanio && y >= 0) 
			return true;
		return false;
	}	
	
	public boolean tieneNaves() {
		for (int i = 0; i < Tablero.tamanio; i++)
			for (int j = 0; j < Tablero.tamanio; j++)
				if (this.getCasillero(i, j).contieneNave())
					return true;
		return false;
	}	
	
		
}

